-- open_grid
-- created by panyl
-- 战斗统计规则：翻开格子

local handle = function(para)
    Profiler.funcBegin("combat_stat/open_grid");
    -- 如果不是在地牢内就忽略
    if not DungeonM.isInDungeon() then
        return;
    end

    -- 开门的就不要管了
    if para.type == GRID_TYPE_DOOR then
        return;
    end

    -- 一开始已经显示的格子不算
    local grid = DungeonM.getGridByPos(para.pos);
    if grid:isPublicGrid() then
        return;
    end

    -- 增加进度
    local id = CombatStatM.queryByRule("open_grid", "id");
    CombatStatM.addProgress(id, 1);
    Profiler.funcEnd("combat_stat/open_grid");
end

-- 打开格子事件
EventMgr.register("open_grid", event.OPEN_GRID, handle);
EventMgr.register("pure_open_grid", event.PURE_OPEN_GRID, handle);

return {
    progress = function()
        local id = CombatStatM.queryByRule("open_grid", "id");
        return CombatStatM.getProgress(id);
    end,
};
